u`
eLXgсFp.295ufQ[gƂ́v
Q[JKF`~̕`A̕`AʑJ Ȃ

p.295 fQ[gƂ

E\bhւ̎QƂێĂāApă\bhĂяod|
E܂AfQ[gʂẴ\bȟĂяo\
EC/C++ɂu֐ւ̃|C^vƓl
ECxgȂǂŕK{̃eNjbN
E錾F delegate \bh̖߂l^ fQ[g(\bḧXg);
EFbool answer(int x){c}\bhp̃fQ[gmdȂ΁Adelegate bool md(int w) Ƃ
Epɂ̓fQ[gIuWFNg̐KvŁA̎ɌĂяo\bh̎wł
EF fQ[g Qƕϐ = new fQ[g(\bh);
EFbool answer(int x){c}\bhp̃fQ[gmdȂ΁Amd mymd = new md(answer);
EfQ[goRŎwς̃\bhĂяoɂ́AQƕϐʖ̂悤ɗpł
EF bool b = mymd(5); // answer(5)Ă΂߂lԂ

p.297 delegate01.cs

//p.297 delegate01.cs
using System;
delegate void MyDelegate(); //fQ[g̐錾(߂lA))
class delegate01 {
    public static void show() { //ÓI\bh(Main璼ڌĂяo悤)
        Console.WriteLine("Ă΂܂");
    }
    public static void Main() {
        //show\bhĂяo
        show();
        //fQ[g̍쐬
        MyDelegate md = new MyDelegate(show); //(NXȂ̂)\bĥݎwOK
        //fQ[gʂshow\bhs
        md();
    }
}

p.298iʂ̃NXɂ郁\bhfQ[goRŌĂяoj

Eʂ̃NXɂ郁\bhfQ[goRŌĂяoƂł
ECX^X\bhł΁ÃNX̃CX^X𐶐āApƗǂ
EF fQ[g Qƕϐ = new fQ[g(CX^X.\bh);

p.298 delegate02.cs

//p.298 delegate02.cs
using System;
delegate void MyDelegate(); //fQ[g̐錾(߂lA))
class MyClass {
    public void show() { //MainƂ͈قȂNXɂ郁\bh
        Console.WriteLine("Ă΂܂");
    }
}
class delegate02 {
    public static void Main() {
        MyClass mc = new MyClass(); //Ăяo\bĥNX̃CX^X𐶐
        mc.show(); //CX^XoRŒshow\bhĂяo
        MyDelegate m = new MyDelegate(mc.show);  //CX^X.\bhŃfQ[g𐶐
        m(); //CX^X͕svŁA\bhĂяo
    }
}

p.298iʂ̃NXɂÓI\bhfQ[goRŌĂяoj

Eʂ̃NXɂÓI\bhfQ[goRŌĂяoƂł
EÓI\bhł΁ÃNX̃CX^X𐶐Ăǂ
EF fQ[g Qƕϐ = new fQ[g(NX.\bh);

p.299 delegate03.cs

//p.299 delegate03.cs
using System;
delegate string MyDelegate(string a, string b); //fQ[g̐錾(߂lLAL))
class MyClass {
    public static string show(string s1, string s2) { //MainƂ͈قȂNXɂÓI\bh
        return s1 + "" + s2 + "ł";
    }
}
class delegate03 {
    public static void Main() {
        Console.WriteLine(MyClass.show("L", "ٓ")); //NXoRŒshow\bhĂяo
        MyDelegate md = new MyDelegate(MyClass.show); //NX.\bhŃfQ[g𐶐
        Console.WriteLine(md("C#", "낢")); //NX͕svŁA\bhĂяo
    }
}

p.299ifQ[g̓IȕύXj

EfQ[g̐ɗpQƕϐėp邱ƂŁAĂяo郁\bh𓮓IɕύXł
@ A߂l^ƈXgł邱
EɂA\bhĂяoĂ镔͕ύXɁAĂяo郁\bhςĂ܂Ƃ\
EF
@delegate bool md(int w); //fQ[g̐錾(߂lLAL))
@bool myanswer(int x){c}   //ÓI\bh@(Main璼ڌĂяo悤)
@bool youranswer(int x){c} //ÓI\bhA(Main璼ڌĂяo悤)
@md mymd; //fQ[gpϐ錾
@mymd = new md(answer); //fQ[g쐬(myanswerp)AmymdƂ
@bool b1 = mymd(5); // myanswer(5)Ă΂߂lԂ
@mymd = new md(youranswer); //fQ[g쐬(youranswerp)Amymd㏑
@bool b2 = mymd(5); // youranswer(5)Ă΂߂lԂ

p.300 delegate04.cs

//p.300 delegate04.cs
using System;
delegate DateTime MyDelegate(DateTime dt, int n); //fQ[g̐錾(߂lLAL))
class MyClass1 {
    public DateTime Calc(DateTime d, int n) { //MainƂ͈قȂNX@ɂCX^X\bh@
        return d.AddDays(n); //dn̓tIuWFNg𐶐ĕԂ
    }
}
class Myclass2 {
    public DateTime Calc(DateTime d, int n) { //MainƂ͈قȂNXAɂCX^X\bhA
        return d.AddHours(n); //dnԌ̓tIuWFNg𐶐ĕԂ
    }
}
class delegate04 {
    public static void Main() {
        MyClass1 mc1 = new MyClass1(); //CX^X\bh@̂NX̃CX^X𐶐
        Myclass2 mc2 = new Myclass2(); //CX^X\bhÂNX̃CX^X𐶐
        MyDelegate md = new MyDelegate(mc1.Calc); //CX^X\bh@̃fQ[g𐶐mdƂ
        DateTime dt = DateTime.Now; //ݓt̓tIuWFNg𓾂
        DateTime mydate; //󂯎p̕ϐ̐錾
        mydate = md(dt, 100); //CX^X\bh@ɓtIuWFNgn100𓾂
        Console.WriteLine("100́A{0}ł", mydate.ToShortDateString());
        md = new MyDelegate(mc2.Calc); //CX^X\bhÃfQ[g𐶐md㏑
        mydate = md(dt, 100); //CX^X\bhAɓtIuWFNgn100Ԍ𓾂
        Console.WriteLine("100Ԍ́A{0}ł",  mydate);
    }
}

AWKFp.300 delegate04.cs

EułH ԌłHi1: 2:Ԍ 0:Ijv͂ł悤ɂ悤
Eu1:vI΂ꂽułFv͂ł悤ɂāAʂ\悤
Eu2:ԌvI΂ꂽuԌłFv͂ł悤ɂāAʂ\悤
Eu0:IvI΂܂ŉx肩

쐬

//AWKFp.300 delegate04.cs
using System;
delegate DateTime MyDelegate(DateTime dt, int n); //fQ[g̐錾(߂lLAL))
class MyClass1 {
    public DateTime Calc(DateTime d, int n) { //MainƂ͈قȂNX@ɂCX^X\bh@
        return d.AddDays(n); //dn̓tIuWFNg𐶐ĕԂ
    }
}
class Myclass2 {
    public DateTime Calc(DateTime d, int n) { //MainƂ͈قȂNXAɂCX^X\bhA
        return d.AddHours(n); //dnԌ̓tIuWFNg𐶐ĕԂ
    }
}
class delegate04 {
    public static void Main() {
        MyClass1 mc1 = new MyClass1(); //CX^X\bh@̂NX̃CX^X𐶐
        Myclass2 mc2 = new Myclass2(); //CX^X\bhÂNX̃CX^X𐶐
        MyDelegate md; //yύXzfQ[gpϐ錾
        DateTime dt; //yύXzݓtp̕ϐ̐錾
        DateTime mydate; //󂯎p̕ϐ̐錾
        string ans = ""; //yǉz͗p 
        do { //yǉzJԂJn
            Console.Write("łH ԌłHi1: 2:Ԍ 0:IjF");  //yǉz
            ans = Console.ReadLine(); //yǉz
            dt = DateTime.Now; //yړzݓt̓tIuWFNg𓾂
            if (ans == "1") { //yǉzH
                Console.Write("F"); int n = int.Parse(Console.ReadLine()); //yǉz
                md = new MyDelegate(mc1.Calc); //yύXzCX^X\bh@̃fQ[g𐶐mdƂ
                mydate = md(dt, n); //yύXzCX^X\bh@ɓtIuWFNgnn𓾂
                Console.WriteLine("{0}́A{1}ł", n, mydate.ToShortDateString()); //yύXz
            } else if (ans == "2") { //yǉzԌH
                Console.Write("ԌF"); int n = int.Parse(Console.ReadLine()); //yǉz
                md = new MyDelegate(mc2.Calc); //CX^X\bhÃfQ[g𐶐mdƂ
                mydate = md(dt, n); //yύXzCX^X\bhAɓtIuWFNgnnԌ𓾂
                Console.WriteLine("{0}Ԍ́A{1}ł", n, mydate); //yύXz
            }
        } while(ans != "0"); //yǉz0:II΂ȂΌJԂ
    }
}

ʉił邾ʉĂ݂悤j

//AWKFp.300 delegate04.cs
using System;
delegate DateTime MyDelegate(DateTime dt, int n); //fQ[g̐錾(߂lLAL))
class MyClass1 {
    public DateTime Calc(DateTime d, int n) { //MainƂ͈قȂNX@ɂCX^X\bh@
        return d.AddDays(n); //dn̓tIuWFNg𐶐ĕԂ
    }
}
class Myclass2 {
    public DateTime Calc(DateTime d, int n) { //MainƂ͈قȂNXAɂCX^X\bhA
        return d.AddHours(n); //dnԌ̓tIuWFNg𐶐ĕԂ
    }
}
class delegate04 {
    public static void Main() {
        MyClass1 mc1 = new MyClass1(); //CX^X\bh@̂NX̃CX^X𐶐
        Myclass2 mc2 = new Myclass2(); //CX^X\bhÂNX̃CX^X𐶐
        MyDelegate md = null; //yύXzfQ[gpϐ錾
        DateTime dt; //yύXzݓtp̕ϐ̐錾
        DateTime mydate; //󂯎p̕ϐ̐錾
        string ans = ""; //yǉz͗p 
        string[] dh = {"", "" }; //yǉz\p
        while(true) { //yǉzJԂJn
            Console.Write("łH ԌłHi1: 2:Ԍ 0:IjF");  //yǉz
            ans = Console.ReadLine(); //yǉz
            if (ans == "0") break; //yǉz0:II΂ꂽ甲
            dt = DateTime.Now; //yړzݓt̓tIuWFNg𓾂
            int i = int.Parse(ans) - 1; //yǉzYɂ
            Console.Write("{0}F", dh[i]); int n = int.Parse(Console.ReadLine()); //yǉz
            if (i == 0) { //yǉzH
                md = new MyDelegate(mc1.Calc); //yύXzCX^X\bh@̃fQ[g𐶐mdƂ
            } else  { //yǉzԌH
                md = new MyDelegate(mc2.Calc); //CX^X\bhÃfQ[g𐶐mdƂ
            }
            mydate = md(dt, n); //yύXzCX^X\bh@ɓtIuWFNgnn𓾂
            Console.WriteLine("{0}{1}́A{2}ł", n, dh[i], mydate); //yύXz
        }
    }
}

eLXgю\Fp.301u}`LXgfQ[Vv

Q[JKF`~̕`A̕`AʑJ Ȃ

e[}17 `̕`

E`(lp`)́ADrawRectangle\bhɃyAXWAYWAAw肷ƕ`ł

K14 GA̕`

EԐFA2ŋ`̔GA`悵悤
EJnW(78, 411)A485A64Ƃ

쐬

//K14 GA̕`
using System; //tH[AvP[VɕK{
using System.Windows.Forms; //tH[AvP[VɕK{
using System.Drawing; //Imagep
class Program : Form { //FormNXp
    Image backb = Image.FromFile("backb.bmp"); //wi摜̓Ǎ
    Image enemy = Image.FromFile("enemy.gif"); //ACe摜̓Ǎ
    Image burn = Image.FromFile("burn.gif"); //ʗp摜̓Ǎ
    Pen mypen = new Pen(Color.Red, 2); //yύXzy𐶐(l͐ԁA2)
    protected override void OnPaint(PaintEventArgs e) { //Form̃\bhI[o[Ch
        base.OnPaint(e); //܂AFormNXɂ郁\bh̓e({ĕ`揈)s
        e.Graphics.DrawImage(backb, 0, 0); //wi摜(0,0)`
        //e.Graphics.DrawLine(mypen, 0, 0, backb.Width - 1, backb.Height - 1); //y폜zォE֐ԐF10̐`
        //mypen.Color = Color.Yellow; //y폜zyFF
        //mypen.Width = 20;  //y폜zy20
        //e.Graphics.DrawLine(mypen, backb.Width - 1, 0, 0, backb.Height - 1); //y폜zォE։F20̐`
        e.Graphics.DrawRectangle(mypen, 78, 411, 485, 64); //yǉzGA̕`
        int mx = backb.Width / 2, my = backb.Height / 2; //W𓾂
        e.Graphics.DrawImage(enemy, mx - enemy.Width / 2, my - enemy.Height / 2); //ACe摜𒆉ɕ`
        e.Graphics.DrawImage(burn, mx - burn.Width / 2, my - burn.Height / 2); //ACe摜𒆉ɕ`
    }
    void OnKeyDown(object o, KeyEventArgs e) { //L[{[hꂽɌĂ΂郁\bh
        if(e.KeyCode.ToString() == "Escape") { //EscL[ꂽ
            Close(); //tH[AvP[VI
        }
    }
    Program() { //RXgN^
        KeyDown += new KeyEventHandler(OnKeyDown); //L[{[hꂽɌĂ΂郁\bho^
    }
    static void Main() { //public̎w͔C
        Program p = new Program(); //ptH[̃CX^X𐶐
        p.Width = 660; //CX^XWidthvpeBɕ
        p.Height = 520; //CX^XHeightvpeBɍ
        p.Text = "Game"; //CX^XTextvpeBɃtH[
        p.ControlBox = false; //ControlBox\ɂ
        p.FormBorderStyle = FormBorderStyle.Fixed3D; //tH[TCYύX֎~
        Application.Run(p); //CX^Xʂɏo
    }
}

e[}18 ~ȉ~̕`

E~܂͑ȉ~́ADrawEllipse\bhɃyAXWAYWAAw肷ƕ`ł
E͋`z肵Ă̒ɓڂȉ~`C[WɂȂ
EāAƍ𓯂lɂΉ~ɂȂA̒laɂȂ

K15 S~̕`

Ë̒ɁAF10̃yŁAa15̉~`
E̊OɁAyŔa30A45A60̉~`ƂœS~ɂ傤
EqgF łɓĂ钆Wimx, myjpāALi = 14܂łɂČJԂƗǂ
@XW = mx - 15 * iAYW = my - 15 * iA = 30 * iA = 30 * i ŉ~`

Q[JK\FS~̕`̃tH[AhԂA̕`A^CgʂƉʑJ Ȃ
